package cn.core.data.service.intf;

import cn.core.data.eo.DbTableField;
import cn.core.data.qo.DbTableFieldQO;
import cn.core.data.vo.DbTableFieldVO;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 数据库表字段 服务接口
 */
public interface IDbTableFieldService {

  /**
   * 数据库表字段 >>> 保存
   */
  public DbTableField save(DbTableField eo) throws Exception;

  /**
   * 数据库表字段 >>> 批量保存
   */
  public Collection<DbTableField> saveBatch(Collection<DbTableField> eos) throws Exception;

  /**
   * 数据库表字段 >>> 修改
   */
  public DbTableField update(DbTableField eo) throws Exception;

  /**
   * 数据库表字段 >>> 批量修改
   */
  public Collection<DbTableField> updateBatch(Collection<DbTableField> eos) throws Exception;

  /**
   * 数据库表字段 >>> 删除
   */
  public void remove(DbTableField eo) throws Exception;

  /**
   * 数据库表字段 >>> 批量删除
   */
  public void removeBatch(Collection<DbTableField> eos) throws Exception;

  /**
   * 数据库表字段 >>> 数据量
   */
  public Long count(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 主键查询
   */
  public DbTableField pk(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 查询
   */
  public Collection<DbTableField> query(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 分页
   */
  public Paging<DbTableField> paging(Param<DbTableFieldQO> param) throws Exception;

  /**
   * 数据库表字段 >>> 业务数据量
   */
  public Long countVo(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 业务主键查询
   */
  public DbTableFieldVO pkVo(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 业务查询
   */
  public Collection<DbTableFieldVO> queryVo(DbTableFieldQO qo) throws Exception;

  /**
   * 数据库表字段 >>> 业务分页
   */
  public Paging<DbTableFieldVO> pagingVo(Param<DbTableFieldQO> param) throws Exception;

}
